home *** CD-ROM | disk | FTP | other *** search
- /* 8svx.h include file for IFF 8-bit sampled voices
- * essentially cribbed from EA IFF documentation
- * KEL 21-Feb-87
- */
-
- #ifndef I8SVX_H
-
- #define I8SVX_H
-
- #define ID_8SVX MakeID('8', 'S', 'V', 'X')
- #define ID_VHDR MakeID('V', 'H', 'D', 'R')
-
- typedef LONG Fixed; /* A fixed-point value, 16 bits to the left of the
- * point and 16 to the right. A Fixed is a number
- * of 216ths, i.e. 65536ths. */
-
- #define Unity 0x1000L /* Unity = Fixed 1.0 = maximum volume */
-
- /* sCompression: Choice of compression algorithm applied to the samples */
-
- #define sCmpNone 0 /* not compressed */
- #define sCmpFibDelta 1 /* Fibonacci-delta encoding */
- /* can be more kinds in the future */
-
- typedef struct {
- ULONG oneShotHiSamples, /* # samples in the high octave 1-shot part */
- repeatHiSamples, /* # samples in the high octave repeat part */
- samplesPerHiCycle; /* # samples/cycle in high octave, else 0 */
- UWORD samplesPerSec; /* data sampling rate */
- UBYTE ctOctave, /* # octaves of waveforms */
- sCompression; /* data compression technique used */
- Fixed volume; /* playback volume from 0 to Unity (full
- * volume). Map this value into the output
- * hardware's dynamic range. */
- } Voice8Header;
-
- #define ID_NAME MakeID('N', 'A', 'M', 'E')
- /* NAME chunk contains a CHAR [], the voice's name. */
-
- #define ID_Copyright MakeID('(','c',')',' ')
- /* "(c) " chunk contains a CHAR [], the FORM's copyright notice. */
-
- #ifndef ID_AUTH
- #define ID_AUTH MakeID('A','U','T','H')
- #endif
- /* AUTH chunk contains a CHAR [], the author's name. */
-
- #define ID_ANNO MakeID('A', 'N', 'N', 'O')
- /* ANNO chunk contains a CHAR [], author's text annotations. */
-
- #define ID_ATAK MakeID('A', 'T', 'A', 'K')
- #define ID_RLSE MakeID('R', 'L', 'S', 'E')
-
- typedef struct {
- UWORD duration; /* segment duration in milliseconds, > 0 */
- Fixed dest; /* destination volume factor */
- } EGPoint;
-
- /* ATAK and RLSE chunks contain an EGPoint[] piecewise-linear envelope. */
- /* The envelope defines a function of time returning Fixed values. It's
- * used to scale the nominal volume specified in the Voice8Header. */
-
- #define ID_BODY MakeID('B', 'O', 'D', 'Y')
-
- /* BODY chunk contains a BYTE[], array of audio data samples. */
-
- #endif
-
- /* end of 8svx.h */
-